Systemd是System V init系统的继任者,很多现代Linux分发版本都在使用,尽管你可以继续使用init.d
脚本,但使用systemd
‘service’脚本启动Spring Boot应用是有可能的。
假设你在/var/myapp
目录下安装一个Spring Boot应用,为了将它安装为一个systemd
服务,你需要按照以下示例创建一个脚本,比如命名为myapp.service
,然后将它放到/etc/systemd/system
目录下:
[Unit]
Description=myapp
After=syslog.target
[Service]
User=myapp
ExecStart=/var/myapp/myapp.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
注 记得根据你的应用改变Description
,User
和ExecStart
字段。
注意跟作为init.d
服务运行不同,使用systemd
这种方式运行应用,PID文件和控制台日志文件表现是不同的,必须在‘service’脚本配置正确的字段,具体参考service unit configuration man page。
使用以下命令标识应用自动在系统boot上启动:
$ systemctl enable myapp.service
具体详情可参考man systemctl
。